package cn.iocoder.yudao.module.of.service.taskfeedback;

import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.module.of.controller.admin.taskfeedback.vo.*;

import java.util.List;

/**
 * 任务反馈 Service 接口
 *
 * @author 超级管理员
 */
public interface TaskFeedbackService {

    /**
     * 获得任务反馈分页
     *
     * @param req 分页查询
     * @return 任务反馈分页
     */
    PageResult<?> feedbackPage(TaskFeedbackPageReqVO req);

    /**
     * 提交任务反馈
     *
     * @param createReqVO 创建信息
     */
    void submitTaskFeedback(TaskFeedbackSaveReqVO createReqVO);

    /**
     * 获得任务反馈详情
     * <p>
     * 暂时有问题，获得主任务的时候，子任务反馈信息异常，前端没有用，暂时不修复
     *
     * @param taskId 任务id
     * @return 任务反馈
     */
    TaskFeedbackDetailVO getTaskFeedbackDetail(Long taskId);

    /**
     * 反馈审核(子)、确认(主)
     *
     * @param req 审批信息
     */
    void approval(TaskFeedbackApprovalReqVO req);

    /**
     * 主任务办理人对子任务二次确认
     *
     * @param req 审批信息
     */
    void approval2(TaskFeedbackApprovalReqVO req);

    /**
     * 获得任务反馈详情
     *
     * @param taskId 任务id
     * @return 任务反馈详情
     */
    List<TaskFeedbackSampleVO> getTaskFeedbackInfo(Long taskId);


}